package me.learningandroid.miniproject1.phonebook;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class TodoDbHelper extends SQLiteOpenHelper {
    public TodoDbHelper(@Nullable Context context, @Nullable String name, int version) {
        super(context, name, null, version);
    }

    // 当系统初次遇见这个`SQLiteOpenHelper`, 系统调用这个方法初始化数据库。之后都不会执行这个方法。
    @Override
    public void onCreate(SQLiteDatabase db) {
        // 执行DDL时，使用`execSQL`直接执行SQL语句。
        db.execSQL("create table todo (id integer primary key autoincrement, content text, done integer)");
    }

    // 系统判断当构造函数的version大于之前的version时，系统会调用`onUpgrade`
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (oldVersion<1) {
            db.execSQL("alter table todo add column version int");
            db.execSQL("update todo set version=12");
        }
        if (oldVersion<2) {
            db.execSQL("update todo set version=2");
        }
        if (oldVersion<3) {
            db.execSQL("update todo set version=3");
        }
    }
}
